1. Field of the Invention
This invention relates to disk memory apparatus for storing information and in particular to a structure and method for decoding information stored on a servo disk which characterizes the type of track being read and its rotational position.
2. Description of the Prior Art
Prior art disk based memory structures are well known. One such prior art disk memory system is shown in FIG. 1. Disk memory system 70 comprises a plurality of disks 99, 100 and 101 (although a disk memory system may contain fewer or more than three disks) and a drive motor 117 which causes disks 99, 100 and 101 to rotate counterclockwise at a high speed as shown by the arrow in FIG. 1. Disk memory system 70 also includes a plurality of sensing elements or "heads" 120a-120f. One such head is utilized for each surface of each disk. Thus, for the system of FIG. 1 which utilizes three disks 99, 100 and 101, a plurality of six heads (indicated by the six dots 120a-120f) are required to monitor or "read" data stored on the six disk surfaces. As shown in FIG. 1, two heads are often located on the same physical support element; thus the two center elements each contain two heads 120b, 120c and 120d, 120e. The heads 120a-120f are moved in a lateral direction radially across disks 99, 100 and 101 in order to access (i.e. "read" or "write") at any given time information stored on a selected one of the plurality of substantially circular annular tracks on which information is stored on each surface of disks 99, 100 and 101. Such disk access operations are hereinafter referred to as "read" operations, although it is to be understood that data may be either read from or written to the disk during such operations. This lateral movement is controlled by Servo Motor 119 in a well known manner. The speed of disk drive motor 117 is typically controlled by a well known type of motor speed controller which holds the speed of rotation of disks 99, 100 and 101 to within about one percent of its desired speed.
While the disk memory system 70 in FIG. 1 includes three disks 99, 100 and 101, or a total of six disk surfaces (labelled 99a, 99b, 100a, 100b, 101a and 101b), only five of these disk surfaces (surfaces 99a, 99b, 100a, 100b, 101a) are available for use in storing actual data or information for processing. The remaining disk surface 101b is known as the "servo-disk surface" and permanently stores information relating to the location of tracks on the other five surfaces of the disks. Of importance, the location of tracks on the servo disk surface 101b is substantially identical to the location of tracks on the remaining disk surfaces. Thus, when the servo head 120f is correctly positioned on a selected track of the servo disk surface 101b, the heads 120a to 120e are also correctly positioned to read data from corresponding tracks on the remaining disk surfaces 99a, 99b, 100a, 100b and 101a. In this manner, one disk head 120f monitors the servo-disk surface in order to determine whether the heads 120a to 120e are correctly positioned laterally along the radii of the disks. The disk head 120f associated with the servodisk surface 101b also reads information from the servo-disk surface 101b in order to determine where along the circular path of the track the head is located. The disk head 120f also reads information stored on the servo-disk surface 101b to determine whether the track being read is the zero track (i.e. corresponding the first track used for storing information on disk surfaces 99a, 99b, 100a, 100b, 101a) or whether the track being read is a "Guard Band Track", corresponding to one of the unusable tracks along the inner regions or outer regions of the other disk surfaces 99a, 99b, 100a, 100b, 101a.
A plan view of the servo-disk surface 101b is shown in FIG. 2. Circular opening 17 is used for mounting the disk 101 on a spindle which is driven by disk drive motor 117 (FIG. 1). Track 18 is one of a number of "guard band" tracks located along the inner portion of disk surface 101b. Similarly, track 19 is one of a number of "guard band" tracks located near the outer portion of disk surface 101b. These guard band tracks contain information indicating that corresponding tracks on the other disk surfaces 99a, 99b, 100a, 100b, 101a are not used for storing information. The track immediately adjacent to guard band 19 toward the center of disk surface 101b is called the "zero" track, and is used as a starting point for counting the tracks as the heads 120a to 120f are moving radially across the disks. For example, upon power-up of the disk memory system 70 (FIG. 1) and the receipt of a read or write instruction, the head 120f will first locate the zero track on the servo-disk surface 101b and, in response to computer instructions, will locate a first selected track to be read as control circuitry and actuator motor 119 move the heads 120 inward in a lateral direction the required number of tracks (as determined by the servo head 120f and related control circuitry). From this position above the first selected track to be read, the heads 120a-120f will either move radially inward or outward a second selected number of tracks in order to position themselves above a second selected track to be read. This method of locating a track by moving heads 120a-120f inward or outward a desired number of tracks from their last known position is often referred to as "dead reckoning". Should an error be detected (as will be more fully described later) or upon other computer instruction, the heads 120a-120f will again locate the zero track and begin this dead reckoning process anew.
As shown in FIG. 2, a radius line I.sub.1 serves as an index for the starting point of each annular track. In this manner, the data stream which is read from each track as disks 99, 100 and 101 rotate is synchronized upon receipt of a signal defining the location of the index position I.sub.1 on servo track 101b.
In order for the head 120f associated with the servo-disk to be able to provide information to enable the computer to determine whether the servo track being read is a guard band track, the zero track, or a track other than the zero track which is capable of storing information, as well as the index position on the servo disk surface 101b, each track within servo-disk surface 101b must contain digital information regarding the status of the track. This information is stored in the form of a sequence of magnetized and nonmagnetized portions of the track representing binary digits (bits) which are detected by head 120f and converted by head 120f to a sequence of analog pulses as the disk 101 rotates. Such a pulse stream from a servo track is shown in FIG. 3a. Because the annular tracks on servo disk surface 101b are continuous, the pulse streams will be repeated as the disks rotate. The number of pulses provided by a single track of the servo-disk is quite large, typically numbering approximately sixteen thousand. For clarity, only a relatively few of these pulses are shown in FIG. 3a.
The bit stream from a selected servo track on servo disk surface 101b shown in FIG. 3a is broken up into a plurality of segments of time duration T4. Each of these segments provides the possibility for storage in the track of six pulses. Pulses P1 and P2 indicate the beginning of each time period such as time period T4 and provide data defining whether the track is a guard band track or the zero track. Window pulses W1 through W4 are analog pulses which indicate whether the track is an odd numbered track or even numbered track, and are used in order to cause each of heads 120a through 120f to properly align itself along the track in a well known manner. By determining whether the track being read is an odd numbered or even numbered track and comparing this with the desired track number (odd or even), errors in track selection are minimized.
As previously described, the pulses P1 and P2 indicate the start of time period T4 and the presence or absence of pulse P2 provides one of a plurality of bits which define the track as either a guard band track or the zero track, and the location of index position I.sub.1. Accordingly, pulses P1 and P2 are closely spaced in order to be easily recognizable as pulses P1 and P2 and not confused with window pulses W1 through W4. Thus, the minimum spacing T5 between the rising edge of any pulse other than pulse P1 and any adjacent pulse must be greater than the maximum time spacing T1 between the rising edge of pulse P1 and pulse P2. If it is determined that, within a time period T1 after the rising edge of a pulse, a second pulse is located, the first pulse was pulse P1 and the second pulse is P2 because only pulses P1 and P2 are located so closely, and synchronization is established. On the contrary, if after the rising edge of a first pulse, a second pulse is not located within the time T1, synchronization is not established because it is not certain that the first pulse was a pulse P1 (i.e. the first pulse may be pulse P1 and pulse P2 is missing, or the first pulse was not pulse P1).
In prior art disk memory systems, the first pulse P1 is a so-called "optional" pulse in that its presence or absence provides one bit of data relating to the status of the track as a guard band track or the zero track. Naturally, although pulses P1 are optional, a sufficient number of pulses P1 are present to enable the disk memory system to synchronize its operation such that the memory system knows during what time periods the optional pulse P1 is (or is not) located and also knows the location of pulse P2, and pulses W1 through W4. In this manner, a plurality (typically eight) of pulses P1 from an equal plurality of adjacent time periods T4 provide an equal plurality of bits of information which define the status of the track as a guard band track or the zero track, as well as defining the index position. Of importance, oftentimes it is provided that no two sequential optional pulses P1 are both absent, thus allowing synchronization to be established upon locating at most two sequential pulse pairs, because at least one of the two sequential pulse pairs will contain both optional pulse P1 and pulse P2.
In such prior art systems, a time period equal to the time between the rising edge of pulse P2 and the location of the subsequent optional pulse P1 (i.e., T4-T2-T3) must elapse before the data from the subsequent pulse P1 is received. Accordingly, if the speed of rotation of disk 101 varies, thus causing each of the time periods T1 through T5 shown in FIG. 3a to vary, there is the possibility that the optional pulse P1 will not be read at the expected time after pulse P2, with the result that the disk drive system will read data erroneously from the track (either a noise pulse will be read as the presence of a pulse P1, or the presence of a pulse P1 will go undetected) with the concommitment disadvantage that the track will be erroneously identified, the index position erroneously identified, and that subsequent reading of data from this and other tracks (i.e. tracks on disk surfaces 99a, 99b, 100a, 100b, 101a) located by the dead reckoning technique will provide erroneous data in that the wrong tracks are read, and the bit stream read from each track is synchronized to an erroneous index position. Alternatively, reading data erroneously from the servo disk surface 101b is detected by the disk system and additional, time consuming attempts to read valid data are made, thus decreasing system speed. If valid data cannot be read after several attempts, the disk drive system ceases to function.
In such prior art systems, a variation in the speed of rotation of the disks of as little 0.5% may cause such errors. To alleviate this problem, such prior art disk systems utilize complex and expensive circuitry for increasing the tolerance to disk speed variations. Such prior art circuitry typically includes a phase lock loop circuit for generating clock signals which are accurately synchronized with the disk rotation. Another technique for increasing the tolerance to disk speed variations is to search for a pulse P1 during a rather wide time interval at a specified time after detection of a pulse P2. However, this technique increases the system's susceptibility to noise which may be present during the specified time interval, as compared to systems in which the data output of the servo track being read is momentarily strobed a specified time after a pulse P2 is located.